$(function() {
    toastr.options = messageOpts;

    $("#systemParamTable").bootstrapTable('destroy').bootstrapTable({
        url : window.portAddress + "/systemParam/systemParamList",
        dataType : "json",
        method : 'get',
        striped: true,  //行间隔色
        cache : false,  //禁用缓存
        pageNumber: 1,  //初始化加载第一页
        pagination: true,//是否分页
        sidePagination: "client",//前端分页
        pageSize: 5,//单页记录数
        pageList: [5, 10, 15],//可选择单页记录数
        clickToSelect : true,
        theadClasses: "thead-pink",
        queryParams: function (params) {
            //向服务器传递的参数
            return {
               /* option : $("#search_option option:selected").val(),*/
                systemParamName : $("#systemParamName").val(),
                systemParamType : $("#systemParamType").val(),
            };
        },
        responseHandler : function(res) {
            return res.data;
        },
        columns : [
            {
                title : "系统参数名称",
                field : "systemParamName",
                align : "center",
            },
            {
                title : "系统参数类型",
                field : "systemParamType",
                align : "center",
            },
            {
                title : "系统参数类值",
                field : "systemParamValue",
                align : "center",
            },
            {
                title : "备注",
                field : "remark",
                align : "center",
            },
            {
                title : "修改时间",
                field : "modifyDate",
                align : "center",
            },
            {
                title : "操作",
                field : "pendingNumber",
                formatter : operation,
                width : 130,
                align : "center",
            }

        ]
    });

    function operation(value,row,index) {
        var htm;
        if(value != null){
            return  htm = "<span class=\"badge badge-warning\"><font size='3'>审核中...</font></span>"
        }else{
                htm = "<button type=\"button\" class=\"btn btn-primary\" style='width: 40px;' data-target=\"#updateModel\" data-toggle=\"modal\"><span class=\"glyphicon glyphicon-pencil\"></span></button> "
                    + "<button type=\"button\" class=\"btn btn-danger\" style='width: 40px;' data-target=\"#deleteModel\" data-toggle=\"modal\"><span class=\"glyphicon glyphicon-trash\"></span></button> ";

        }
        return htm;
    }

    $("#search").click(function() {
        $.ajax({
            url : window.portAddress + "/systemParam/systemParamList",
            type : "post",
            data : {
                systemParamName : $("#systemParamName").val(),
                systemParamType : $("#systemParamType").val(),
            },
            dataType : "json",
            success : function(data) {
                if (data.state === '000000') {
                    toastr.success("查询数据成功");
                }else {
                    toastr.error(data.message);
                }
                $("#systemParamTable").bootstrapTable("refresh");
            }
        })
    });

    $("#addBtn").click(function () {
        $("#addModel").modal('show');
    })

    var systemParamValue;
    $("#updateModel").on("show.bs.modal",function (event){
        var thisBtn = $(event.relatedTarget);
        var systemParamName = thisBtn.closest('tr').find('td').eq(0).text();
        var systemParamType = thisBtn.closest('tr').find('td').eq(1).text();
        systemParamValue = thisBtn.closest('tr').find('td').eq(2).text();
        var remark = thisBtn.closest('tr').find('td').eq(3).text();
        $("#updateSystemParamName").val(systemParamName);
        $("#updateSystemParamType").val(systemParamType);
        $("#updateSystemParamValue").val(systemParamValue);
        $("#updateRemark").val(remark);

    });

    $("#deleteModel").on("show.bs.modal",function (event){
        var thisBtn = $(event.relatedTarget);
        var systemParamName = thisBtn.closest('tr').find('td').eq(0).text();
        $("#deleteSystemParamName").val(systemParamName);
    });

    $("#deleteSystemParam").click(function() {
        $.ajax({
            url : window.portAddress + "/systemParam/deleteSystemParam",
            type : "post",
            data : {
                systemParamName : $("#deleteSystemParamName").val(),
                userName: window.sessionStorage.getItem("userName"),
            },
            dataType : "json",
            success : function(data) {
                if (data.state === '000000') {
                    $("#systemParamTable").bootstrapTable("refresh");
                    $("#deleteModel").modal('hide');
                    toastr.success(data.message);
                }else {
                    toastr.error(data.message);
                }
            }
        })
    });

    $("#addSystemParam").click(function () {
        if($("#addSystemParamValue").val() == "" || $("#addSystemParamName").val() == ""){
            toastr.warning("请输入参数名参或者参数值");
            return;
        }

        checkValid($("#addSystemParamType"),$("#addSystemParamValue"));

        $.ajax({
            url : window.portAddress + "/systemParam/addSystemParam",
            type : "post",
            data : {
                systemParamName : $("#addSystemParamName").val(),
                systemParamType : $("#addSystemParamType").val(),
                systemParamValue : $("#addSystemParamValue").val(),
                remark : $("#addRemark").val(),
                userName: window.sessionStorage.getItem("userName"),
            },
            dataType : "json",
            success : function(data) {
                $("#systemParamTable").bootstrapTable("refresh");
                $("#addModel").modal('hide');

                if (data.state === '000000') {
                    toastr.success(data.message);
                }else {
                    toastr.error(data.message);
                }

            }
        })
    })


    $("#updateystemParam").click(function() {

        checkValid($("#updateSystemParamType"),$("#updateSystemParamValue"));

        if(systemParamValue == $("#updateSystemParamValue").val()){
            return  toastr.warning("参数值未修改");
        }

        $.ajax({
            url : window.portAddress + "/systemParam/updateSystemParam",
            type : "post",
            data : {
                systemParamName : $("#updateSystemParamName").val(),
                systemParamType : $("#updateSystemParamType").val(),
                systemParamValue : $("#updateSystemParamValue").val(),
                remark : $("#updateRemark").val(),
                userName: window.sessionStorage.getItem("userName"),
            },
            dataType : "json",
            success : function(data) {
                $("#systemParamTable").bootstrapTable("refresh");
                $("#updateModel").modal('hide');

                if (data.state === '000000') {
                    toastr.success(data.message);
                }else {
                    toastr.error(data.message);
                }
            }
        })
    });

    function checkValid(type,value) {

        //对于systemParamType='DEC'的参数需要进行校验
        if(type.val() == 'DEC'){
            //要求是不超过两位小数点的正数
            const regex = "/^-?\d+(\.\d{1,2})?$/";
            if(!regex.replace(value.val()) || value.val() < 0){
                return toastr.warning("参数金额为不超过两位小数点的正数！");
            }
            if(value.val().length > 9 ){
                return toastr.warning("输入金额过大,请重新输入！");
            }
        }

        //对于systemParamType='INT'的参数需要进行校验
        if(type.val() == 'INT'){
            //要求是最多8位数正整数
            const regex = "/^[1-9]\\d{0,7}$/";
            if(!regex.replace(value.val())){
                return toastr.warning("参数值最多为八位数正整数！");
            }
        }

        //对于systemParamType='STR'的参数需要进行校验
        if(type.val() == 'STR'){
            //长度最长为100
            if(value.val().length > 100){
                return toastr.warning("输入值长度无效！");
            }
        }
    }
})
